import React, { Component } from 'react'
import Sunzi from "./sunzi"
import {PureComponent} from "react" // PureComponent 会默认做一个浅比较，只能比较出pros的改变，对自身的状态无法捕捉到，是有缺陷的
class Son extends Component {

// constructor不管写不写，这里面的内容是页面一加载最先执行的

//   constructor(props){
//         super(props)
//         console.log("constructor")
//   }
state = {
    name1:"znagsna"
}
componentWillMount(){  //理解成vue的beforemounted， 从母亲肚子里出来前
    console.log("componentWillMount","组件挂在前")
}
componentDidMount(){ // 相当于vue里的mounted  已经出生了
    console.log(this.props.send)
    console.log("componentDidMount","组件挂后，可以在这个生命周期获取dom，发网络请求")
}
componentWillUnmount(){ // 组件将要销毁的生命周期，可以在清除定时器，延时器，卸载betterscrlll
    console.log("组件将要卸载，componentWillUnmount")// 相当于vue的beforeDistoy 进棺材前
}
shouldComponentUpdate(newPros,newState){  // 这个生命周期返回一个布尔值，如果不写，默认返回true
    // console.log(newPros,newState) 要知道shouldComponentUpdate可以接受两个参数，知道即可
    return true
}
componentWillUpdate(){ // 组件更新前
    console.log("componentWillUpdate 组件更新前",this.props.send)
}
componentDidUpdate(){
    console.log("componentDidUpdate 组件更新后",this.props.send)
}
// render 也是一个生命周期
render() { // 每一个重要的人生节点
    console.log("render")
    return (
      <div>
          <button onClick={()=>{this.setState({
              name:"liisi"
          })}}>点击我改变name的值</button>
          <h2>{this.state.name}</h2>
          <Sunzi></Sunzi>
      </div>
      
    )
  }
}


export default Son